/**
 * Copyright (C) 2011 ssakorho <sami.s.korhonen@uef.fi>
 *
 * Licensed under the GNU Lesser General Public Licence, Version 3
 * (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *         http://www.gnu.org/copyleft/lesser.html
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package fi.tikesos.rdfa.core.datatype;

import java.net.URI;
import java.net.URISyntaxException;

/**
 * Wrapper class for storing base URI
 * 
 * @author ssakorho
 *
 */
public class BaseURI {
	private URI value;
	
	/**
	 * Class constructor
	 * 
	 * @param str The string to be parsed into a base URI.
	 * @throws URISyntaxException
	 */
	public BaseURI(String str) throws URISyntaxException {
		value = new URI(str);
	}
	
	/**
	 * @param str The string to be parsed into a base URI.
	 * @throws URISyntaxException 
	 */
	public void setURI(String str) throws URISyntaxException {
		int hash = str.lastIndexOf('#');
		if (hash != -1) {
			// Fragment is removed from base
			str = str.substring(0, hash);
		}
		value = value.resolve(str);
	}
	
	/**
	 * @return The base URI.
	 */
	public URI getURI() {
		return value;
	}
}
